package com.debao.system.service.impl;

import java.util.List;

import com.debao.system.domain.vo.CourseStudentVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.debao.system.mapper.TimeUserCardMapper;
import com.debao.system.domain.TimeUserCard;
import com.debao.system.service.ITimeUserCardService;

/**
 * 课程卡次卡Service业务层处理
 *
 * @author DeBao
 * @date 2024-08-26
 */
@Service
public class TimeUserCardServiceImpl implements ITimeUserCardService {
    @Autowired
    private TimeUserCardMapper timeUserCardMapper;

    /**
     * 查询课程卡次卡
     *
     * @param id 课程卡次卡主键
     * @return 课程卡次卡
     */
    @Override
    public TimeUserCard selectTimeUserCardById(Long id) {
        return timeUserCardMapper.selectTimeUserCardById(id);
    }

    @Override
    public List<CourseStudentVo> selectTimeCardStudentList(Long courseId) {
        return timeUserCardMapper.selectTimeCardStudentList(courseId);
    }

    /**
     * 查询课程卡次卡列表
     *
     * @param timeUserCard 课程卡次卡
     * @return 课程卡次卡
     */
    @Override
    public List<TimeUserCard> selectTimeUserCardList(TimeUserCard timeUserCard) {
        return timeUserCardMapper.selectTimeUserCardList(timeUserCard);
    }

    /**
     * 新增课程卡次卡
     *
     * @param timeUserCard 课程卡次卡
     * @return 结果
     */
    @Override
    public int insertTimeUserCard(TimeUserCard timeUserCard) {
        return timeUserCardMapper.insertTimeUserCard(timeUserCard);
    }

    /**
     * 修改课程卡次卡
     *
     * @param timeUserCard 课程卡次卡
     * @return 结果
     */
    @Override
    public int updateTimeUserCard(TimeUserCard timeUserCard) {
        return timeUserCardMapper.updateTimeUserCard(timeUserCard);
    }

    /**
     * 批量删除课程卡次卡
     *
     * @param ids 需要删除的课程卡次卡主键
     * @return 结果
     */
    @Override
    public int deleteTimeUserCardByIds(Long[] ids) {
        return timeUserCardMapper.deleteTimeUserCardByIds(ids);
    }

    /**
     * 删除课程卡次卡信息
     *
     * @param id 课程卡次卡主键
     * @return 结果
     */
    @Override
    public int deleteTimeUserCardById(Long id) {
        return timeUserCardMapper.deleteTimeUserCardById(id);
    }

    /**
     * 根据用户ID查询课程卡次卡
     *
     * @param userId
     * @return
     */
    @Override
    public TimeUserCard selectTimeUserCardByUserId(Long userId) {
        return timeUserCardMapper.selectTimeUserCardByUserId(userId);
    }

    /**
     * 更新课程卡使用次数和剩余次数
     *
     * @param id
     * @return
     */
    @Override
    public int updNum(Long id) {
        return timeUserCardMapper.updNum(id);
    }
}
